package org.nvframe.entity;

import org.nvframe.component.AbstractComponent;

public interface Entity {
	
	public void addComponent(AbstractComponent component);
	
	public <D> AbstractComponent getComponent(Class<D> cls);
	
	public <D> AbstractComponent getComponent(String id);
	
	public boolean hasComponent(Class<?> cls);
	
	public int getComponentCount();
	
	public void printAllComponents();
	
	public void removed();
	
	public boolean isEnabled();

	public void setEnabled(boolean enabled);

	public String getId();

	public int getInstanceId();

	public void setInstanceId(int instanceId);
	
}
